[INFO] fetching crate mini-kanren 0.4.0...
[INFO] fixing mini-kanren-0.4.0 against try#622891a4e29178280638a6b63a8908bde2c0c854+cargoflags=-Zfix-edition=end=2015,2024 for pr-157817-2
[INFO] extracting crate mini-kanren 0.4.0 into /workspace/builds/worker-0-tc2/source
[INFO] started tweaking crates.io crate mini-kanren 0.4.0
[INFO] finished tweaking crates.io crate mini-kanren 0.4.0
[INFO] tweaked toml for crates.io crate mini-kanren 0.4.0 written to /workspace/builds/worker-0-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate mini-kanren 0.4.0 on toolchain 622891a4e29178280638a6b63a8908bde2c0c854
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate mini-kanren 0.4.0 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3a6becf2bc8dde7f3fa57ede90e4f284e72d296796fc446bbb1e2c7cc0530151" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 888590414a997ebf29468c368b7a1733527c6d53e36c79acc3f7bdc768187574
[INFO] running `Command { std: "docker" "start" "888590414a997ebf29468c368b7a1733527c6d53e36c79acc3f7bdc768187574", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "888590414a997ebf29468c368b7a1733527c6d53e36c79acc3f7bdc768187574" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "888590414a997ebf29468c368b7a1733527c6d53e36c79acc3f7bdc768187574", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=" "-e" "RUSTDOCFLAGS=" "-w" "/opt/rustwide/workdir" "--user" "0:0" "888590414a997ebf29468c368b7a1733527c6d53e36c79acc3f7bdc768187574" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fix" "--allow-no-vcs" "--allow-dirty" "--frozen" "--all" "--all-targets" "--message-format=json" "-Zfix-edition=end=2015,2024", kill_on_drop: false }`
[INFO] [stderr] crater-edition-check: migrating to next edition
[INFO] [stderr]    Migrating Cargo.toml from 2018 edition to 2021
[INFO] [stderr]     Checking mini-kanren v0.4.0 (/opt/rustwide/workdir)
[INFO] [stderr]    Migrating src/lib.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating examples/conds.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating examples/hello.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating examples/database.rs from 2018 edition to 2021
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1.36s
[INFO] [stderr] crater-edition-check: mini-kanren v0.4.0 (/opt/rustwide/workdir) updating edition from 2018 to 2021
[INFO] [stderr]     Checking mini-kanren v0.4.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `conde`, `defrel`, and `fresh`
[INFO] [stdout]  --> src/goals/list.rs:4:13
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::{conde, defrel, fresh};
[INFO] [stdout]   |             ^^^^^  ^^^^^^  ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `conde`, `defrel`, and `fresh`
[INFO] [stdout]  --> src/goals/list.rs:4:13
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::{conde, defrel, fresh};
[INFO] [stdout]   |             ^^^^^  ^^^^^^  ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `defrel`, `disj`, `fresh`, and `run`
[INFO] [stdout]   --> src/lib.rs:23:17
[INFO] [stdout]    |
[INFO] [stdout] 23 |     use crate::{defrel, disj, fresh, run, substitution};
[INFO] [stdout]    |                 ^^^^^^  ^^^^  ^^^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 2.08s
[INFO] [stderr] crater-edition-check: migrating to next edition
[INFO] [stderr]    Migrating Cargo.toml from 2018 edition to 2021
[INFO] [stderr]     Checking mini-kanren v0.4.0 (/opt/rustwide/workdir)
[INFO] [stderr]    Migrating src/lib.rs from 2021 edition to 2024
[INFO] [stderr]        Fixed src/core/substitution.rs (1 fix)
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]   --> src/goals/list.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout] 12 |           $crate::prelude::Value::cons($single, ())
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |           |
[INFO] [stdout]    |           this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]    |           up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 63 | / defmatch! {
[INFO] [stdout] 64 | |     /// Creates a goal that succeeds if p is a list.
[INFO] [stdout] 65 | |     pub listo(l) {
[INFO] [stdout] 66 | |         (()) => ;
[INFO] [stdout] ...  |
[INFO] [stdout] 69 | | }
[INFO] [stdout]    | |_- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/macros.rs:8:45
[INFO] [stdout]    |
[INFO] [stdout]  8 |       ($g0:expr_2021; $($g:expr_2021);*) => { $crate::prelude::disj2($g0, $crate::disj!($($g);*))}
[INFO] [stdout]    |                                               ---------------------------------------------------
[INFO] [stdout]    |                                               |
[INFO] [stdout]    |                                               this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]    |                                               `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 70 |               $crate::prelude::Stream::suspension(move || $crate::conj!($($g),*).apply(s))
[INFO] [stdout]    |                                                                                         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]    = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]    = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout]    = note: this warning originates in the macro `list` which comes from the expansion of the macro `defmatch` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]        Fixed src/macros.rs (50 fixes)
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]   --> src/goals/list.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout] 12 |           $crate::prelude::Value::cons($single, ())
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |           |
[INFO] [stdout]    |           this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]    |           up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 63 | / defmatch! {
[INFO] [stdout] 64 | |     /// Creates a goal that succeeds if p is a list.
[INFO] [stdout] 65 | |     pub listo(l) {
[INFO] [stdout] 66 | |         (()) => ;
[INFO] [stdout] ...  |
[INFO] [stdout] 69 | | }
[INFO] [stdout]    | |_- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/macros.rs:8:45
[INFO] [stdout]    |
[INFO] [stdout]  8 |       ($g0:expr_2021; $($g:expr_2021);*) => { $crate::prelude::disj2($g0, $crate::disj!($($g);*))}
[INFO] [stdout]    |                                               ---------------------------------------------------
[INFO] [stdout]    |                                               |
[INFO] [stdout]    |                                               this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]    |                                               `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 70 |               $crate::prelude::Stream::suspension(move || $crate::conj!($($g),*).apply(s))
[INFO] [stdout]    |                                                                                         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]    = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]    = note: this warning originates in the macro `list` which comes from the expansion of the macro `defmatch` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]        Fixed src/goals/list.rs (4 fixes)
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]   --> src/goals/list.rs:24:9
[INFO] [stdout]    |
[INFO] [stdout] 24 |           $crate::prelude::Value::cons($first, list![$($rest)*])
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |           |
[INFO] [stdout]    |           this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]    |           up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 71 | / defmatch! {
[INFO] [stdout] 72 | |     /// Creates a goal that succeeds if l is a list that contains x.
[INFO] [stdout] 73 | |     pub membero(x, l) {
[INFO] [stdout] 74 | |         (x, ({x} ; _)) => ;
[INFO] [stdout] ...  |
[INFO] [stdout] 77 | | }
[INFO] [stdout]    | |_- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/macros.rs:8:45
[INFO] [stdout]    |
[INFO] [stdout]  8 |       ($g0:expr_2021; $($g:expr_2021);*) => { $crate::prelude::disj2($g0, $crate::disj!($($g);*))}
[INFO] [stdout]    |                                               ---------------------------------------------------
[INFO] [stdout]    |                                               |
[INFO] [stdout]    |                                               this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]    |                                               `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 70 |               $crate::prelude::Stream::suspension(move || $crate::conj!($($g),*).apply(s))
[INFO] [stdout]    |                                                                                         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]    = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]    = note: this warning originates in the macro `list` which comes from the expansion of the macro `defmatch` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]        Fixed src/database.rs (3 fixes)
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]   --> src/goals/list.rs:24:9
[INFO] [stdout]    |
[INFO] [stdout] 24 |           $crate::prelude::Value::cons($first, list![$($rest)*])
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |           |
[INFO] [stdout]    |           this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]    |           up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 71 | / defmatch! {
[INFO] [stdout] 72 | |     /// Creates a goal that succeeds if l is a list that contains x.
[INFO] [stdout] 73 | |     pub membero(x, l) {
[INFO] [stdout] 74 | |         (x, ({x} ; _)) => ;
[INFO] [stdout] ...  |
[INFO] [stdout] 77 | | }
[INFO] [stdout]    | |_- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/macros.rs:8:45
[INFO] [stdout]    |
[INFO] [stdout]  8 |       ($g0:expr_2021; $($g:expr_2021);*) => { $crate::prelude::disj2($g0, $crate::disj!($($g);*))}
[INFO] [stdout]    |                                               ---------------------------------------------------
[INFO] [stdout]    |                                               |
[INFO] [stdout]    |                                               this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]    |                                               `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 70 |               $crate::prelude::Stream::suspension(move || $crate::conj!($($g),*).apply(s))
[INFO] [stdout]    |                                                                                         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]    = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]    = note: this warning originates in the macro `list` which comes from the expansion of the macro `defmatch` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]   --> src/goals/list.rs:24:9
[INFO] [stdout]    |
[INFO] [stdout] 24 |           $crate::prelude::Value::cons($first, list![$($rest)*])
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |           |
[INFO] [stdout]    |           this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]    |           up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 93 | / defmatch! {
[INFO] [stdout] 94 | |     /// Creates a goal that succeeds if the list has length n.
[INFO] [stdout] 95 | |     pub lengtho(l, n) {
[INFO] [stdout] 96 | |         ((), n) => zero(n);
[INFO] [stdout] ...  |
[INFO] [stdout] 99 | | }
[INFO] [stdout]    | |_- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/macros.rs:8:45
[INFO] [stdout]    |
[INFO] [stdout]  8 |       ($g0:expr_2021; $($g:expr_2021);*) => { $crate::prelude::disj2($g0, $crate::disj!($($g);*))}
[INFO] [stdout]    |                                               ---------------------------------------------------
[INFO] [stdout]    |                                               |
[INFO] [stdout]    |                                               this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]    |                                               `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 70 |               $crate::prelude::Stream::suspension(move || $crate::conj!($($g),*).apply(s))
[INFO] [stdout]    |                                                                                         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]    = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]    = note: this warning originates in the macro `list` which comes from the expansion of the macro `defmatch` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]   --> src/goals/list.rs:24:9
[INFO] [stdout]    |
[INFO] [stdout] 24 |           $crate::prelude::Value::cons($first, list![$($rest)*])
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |           |
[INFO] [stdout]    |           this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]    |           up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 93 | / defmatch! {
[INFO] [stdout] 94 | |     /// Creates a goal that succeeds if the list has length n.
[INFO] [stdout] 95 | |     pub lengtho(l, n) {
[INFO] [stdout] 96 | |         ((), n) => zero(n);
[INFO] [stdout] ...  |
[INFO] [stdout] 99 | | }
[INFO] [stdout]    | |_- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/macros.rs:8:45
[INFO] [stdout]    |
[INFO] [stdout]  8 |       ($g0:expr_2021; $($g:expr_2021);*) => { $crate::prelude::disj2($g0, $crate::disj!($($g);*))}
[INFO] [stdout]    |                                               ---------------------------------------------------
[INFO] [stdout]    |                                               |
[INFO] [stdout]    |                                               this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]    |                                               `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 70 |               $crate::prelude::Stream::suspension(move || $crate::conj!($($g),*).apply(s))
[INFO] [stdout]    |                                                                                         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]    = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]    = note: this warning originates in the macro `list` which comes from the expansion of the macro `defmatch` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/goals/list.rs:24:9
[INFO] [stdout]     |
[INFO] [stdout]  24 |           $crate::prelude::Value::cons($first, list![$($rest)*])
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |           |
[INFO] [stdout]     |           this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |           up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 101 | / defmatch! {
[INFO] [stdout] 102 | |     /// Creates a goal that succeeds if element x can be removed from list l to
[INFO] [stdout] 103 | |     /// form list out. If x does not occur in l it fails.
[INFO] [stdout] 104 | |     pub rembero(x, l, out) {
[INFO] [stdout] ...   |
[INFO] [stdout] 108 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/macros.rs:8:45
[INFO] [stdout]     |
[INFO] [stdout]   8 |       ($g0:expr_2021; $($g:expr_2021);*) => { $crate::prelude::disj2($g0, $crate::disj!($($g);*))}
[INFO] [stdout]     |                                               ---------------------------------------------------
[INFO] [stdout]     |                                               |
[INFO] [stdout]     |                                               this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                               `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  70 |               $crate::prelude::Stream::suspension(move || $crate::conj!($($g),*).apply(s))
[INFO] [stdout]     |                                                                                         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: this warning originates in the macro `list` which comes from the expansion of the macro `defmatch` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/goals/list.rs:24:9
[INFO] [stdout]     |
[INFO] [stdout]  24 |           $crate::prelude::Value::cons($first, list![$($rest)*])
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |           |
[INFO] [stdout]     |           this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |           up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 101 | / defmatch! {
[INFO] [stdout] 102 | |     /// Creates a goal that succeeds if element x can be removed from list l to
[INFO] [stdout] 103 | |     /// form list out. If x does not occur in l it fails.
[INFO] [stdout] 104 | |     pub rembero(x, l, out) {
[INFO] [stdout] ...   |
[INFO] [stdout] 108 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/macros.rs:8:45
[INFO] [stdout]     |
[INFO] [stdout]   8 |       ($g0:expr_2021; $($g:expr_2021);*) => { $crate::prelude::disj2($g0, $crate::disj!($($g);*))}
[INFO] [stdout]     |                                               ---------------------------------------------------
[INFO] [stdout]     |                                               |
[INFO] [stdout]     |                                               this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                               `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  70 |               $crate::prelude::Stream::suspension(move || $crate::conj!($($g),*).apply(s))
[INFO] [stdout]     |                                                                                         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: this warning originates in the macro `list` which comes from the expansion of the macro `defmatch` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Migrating examples/hello.rs from 2021 edition to 2024
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]   --> src/goals/list.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout] 12 |           $crate::prelude::Value::cons($single, ())
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |           |
[INFO] [stdout]    |           this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]    |           up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 63 | / defmatch! {
[INFO] [stdout] 64 | |     /// Creates a goal that succeeds if p is a list.
[INFO] [stdout] 65 | |     pub listo(l) {
[INFO] [stdout] 66 | |         (()) => ;
[INFO] [stdout] ...  |
[INFO] [stdout] 69 | | }
[INFO] [stdout]    | |_- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/macros.rs:8:45
[INFO] [stdout]    |
[INFO] [stdout]  8 |       ($g0:expr_2021; $($g:expr_2021);*) => { $crate::prelude::disj2($g0, $crate::disj!($($g);*))}
[INFO] [stdout]    |                                               ---------------------------------------------------
[INFO] [stdout]    |                                               |
[INFO] [stdout]    |                                               this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]    |                                               `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 70 |               $crate::prelude::Stream::suspension(move || $crate::conj!($($g),*).apply(s))
[INFO] [stdout]    |                                                                                         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]    = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]    = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout]    = note: this warning originates in the macro `list` which comes from the expansion of the macro `defmatch` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]   --> src/goals/list.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout] 12 |           $crate::prelude::Value::cons($single, ())
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |           |
[INFO] [stdout]    |           this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]    |           up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 63 | / defmatch! {
[INFO] [stdout] 64 | |     /// Creates a goal that succeeds if p is a list.
[INFO] [stdout] 65 | |     pub listo(l) {
[INFO] [stdout] 66 | |         (()) => ;
[INFO] [stdout] ...  |
[INFO] [stdout] 69 | | }
[INFO] [stdout]    | |_- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/macros.rs:8:45
[INFO] [stdout]    |
[INFO] [stdout]  8 |       ($g0:expr_2021; $($g:expr_2021);*) => { $crate::prelude::disj2($g0, $crate::disj!($($g);*))}
[INFO] [stdout]    |                                               ---------------------------------------------------
[INFO] [stdout]    |                                               |
[INFO] [stdout]    |                                               this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]    |                                               `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 70 |               $crate::prelude::Stream::suspension(move || $crate::conj!($($g),*).apply(s))
[INFO] [stdout]    |                                                                                         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]    = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]    = note: this warning originates in the macro `list` which comes from the expansion of the macro `defmatch` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]   --> src/goals/list.rs:24:9
[INFO] [stdout]    |
[INFO] [stdout] 24 |           $crate::prelude::Value::cons($first, list![$($rest)*])
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |           |
[INFO] [stdout]    |           this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]    |           up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 71 | / defmatch! {
[INFO] [stdout] 72 | |     /// Creates a goal that succeeds if l is a list that contains x.
[INFO] [stdout] 73 | |     pub membero(x, l) {
[INFO] [stdout] 74 | |         (x, ({x} ; _)) => ;
[INFO] [stdout] ...  |
[INFO] [stdout] 77 | | }
[INFO] [stdout]    | |_- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/macros.rs:8:45
[INFO] [stdout]    |
[INFO] [stdout]  8 |       ($g0:expr_2021; $($g:expr_2021);*) => { $crate::prelude::disj2($g0, $crate::disj!($($g);*))}
[INFO] [stdout]    |                                               ---------------------------------------------------
[INFO] [stdout]    |                                               |
[INFO] [stdout]    |                                               this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]    |                                               `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 70 |               $crate::prelude::Stream::suspension(move || $crate::conj!($($g),*).apply(s))
[INFO] [stdout]    |                                                                                         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]    = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]    = note: this warning originates in the macro `list` which comes from the expansion of the macro `defmatch` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]   --> src/goals/list.rs:24:9
[INFO] [stdout]    |
[INFO] [stdout] 24 |           $crate::prelude::Value::cons($first, list![$($rest)*])
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |           |
[INFO] [stdout]    |           this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]    |           up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 71 | / defmatch! {
[INFO] [stdout] 72 | |     /// Creates a goal that succeeds if l is a list that contains x.
[INFO] [stdout] 73 | |     pub membero(x, l) {
[INFO] [stdout] 74 | |         (x, ({x} ; _)) => ;
[INFO] [stdout] ...  |
[INFO] [stdout] 77 | | }
[INFO] [stdout]    | |_- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/macros.rs:8:45
[INFO] [stdout]    |
[INFO] [stdout]  8 |       ($g0:expr_2021; $($g:expr_2021);*) => { $crate::prelude::disj2($g0, $crate::disj!($($g);*))}
[INFO] [stdout]    |                                               ---------------------------------------------------
[INFO] [stdout]    |                                               |
[INFO] [stdout]    |                                               this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]    |                                               `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 70 |               $crate::prelude::Stream::suspension(move || $crate::conj!($($g),*).apply(s))
[INFO] [stdout]    |                                                                                         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]    = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]    = note: this warning originates in the macro `list` which comes from the expansion of the macro `defmatch` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]   --> src/goals/list.rs:24:9
[INFO] [stdout]    |
[INFO] [stdout] 24 |           $crate::prelude::Value::cons($first, list![$($rest)*])
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |           |
[INFO] [stdout]    |           this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]    |           up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 93 | / defmatch! {
[INFO] [stdout] 94 | |     /// Creates a goal that succeeds if the list has length n.
[INFO] [stdout] 95 | |     pub lengtho(l, n) {
[INFO] [stdout] 96 | |         ((), n) => zero(n);
[INFO] [stdout] ...  |
[INFO] [stdout] 99 | | }
[INFO] [stdout]    | |_- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/macros.rs:8:45
[INFO] [stdout]    |
[INFO] [stdout]  8 |       ($g0:expr_2021; $($g:expr_2021);*) => { $crate::prelude::disj2($g0, $crate::disj!($($g);*))}
[INFO] [stdout]    |                                               ---------------------------------------------------
[INFO] [stdout]    |                                               |
[INFO] [stdout]    |                                               this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]    |                                               `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 70 |               $crate::prelude::Stream::suspension(move || $crate::conj!($($g),*).apply(s))
[INFO] [stdout]    |                                                                                         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]    = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]    = note: this warning originates in the macro `list` which comes from the expansion of the macro `defmatch` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]   --> src/goals/list.rs:24:9
[INFO] [stdout]    |
[INFO] [stdout] 24 |           $crate::prelude::Value::cons($first, list![$($rest)*])
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |           |
[INFO] [stdout]    |           this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]    |           up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 93 | / defmatch! {
[INFO] [stdout] 94 | |     /// Creates a goal that succeeds if the list has length n.
[INFO] [stdout] 95 | |     pub lengtho(l, n) {
[INFO] [stdout] 96 | |         ((), n) => zero(n);
[INFO] [stdout] ...  |
[INFO] [stdout] 99 | | }
[INFO] [stdout]    | |_- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/macros.rs:8:45
[INFO] [stdout]    |
[INFO] [stdout]  8 |       ($g0:expr_2021; $($g:expr_2021);*) => { $crate::prelude::disj2($g0, $crate::disj!($($g);*))}
[INFO] [stdout]    |                                               ---------------------------------------------------
[INFO] [stdout]    |                                               |
[INFO] [stdout]    |                                               this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]    |                                               `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 70 |               $crate::prelude::Stream::suspension(move || $crate::conj!($($g),*).apply(s))
[INFO] [stdout]    |                                                                                         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]    = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]    = note: this warning originates in the macro `list` which comes from the expansion of the macro `defmatch` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/goals/list.rs:24:9
[INFO] [stdout]     |
[INFO] [stdout]  24 |           $crate::prelude::Value::cons($first, list![$($rest)*])
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |           |
[INFO] [stdout]     |           this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |           up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 101 | / defmatch! {
[INFO] [stdout] 102 | |     /// Creates a goal that succeeds if element x can be removed from list l to
[INFO] [stdout] 103 | |     /// form list out. If x does not occur in l it fails.
[INFO] [stdout] 104 | |     pub rembero(x, l, out) {
[INFO] [stdout] ...   |
[INFO] [stdout] 108 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/macros.rs:8:45
[INFO] [stdout]     |
[INFO] [stdout]   8 |       ($g0:expr_2021; $($g:expr_2021);*) => { $crate::prelude::disj2($g0, $crate::disj!($($g);*))}
[INFO] [stdout]     |                                               ---------------------------------------------------
[INFO] [stdout]     |                                               |
[INFO] [stdout]     |                                               this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                               `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  70 |               $crate::prelude::Stream::suspension(move || $crate::conj!($($g),*).apply(s))
[INFO] [stdout]     |                                                                                         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: this warning originates in the macro `list` which comes from the expansion of the macro `defmatch` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/goals/list.rs:24:9
[INFO] [stdout]     |
[INFO] [stdout]  24 |           $crate::prelude::Value::cons($first, list![$($rest)*])
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |           |
[INFO] [stdout]     |           this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |           up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 101 | / defmatch! {
[INFO] [stdout] 102 | |     /// Creates a goal that succeeds if element x can be removed from list l to
[INFO] [stdout] 103 | |     /// form list out. If x does not occur in l it fails.
[INFO] [stdout] 104 | |     pub rembero(x, l, out) {
[INFO] [stdout] ...   |
[INFO] [stdout] 108 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/macros.rs:8:45
[INFO] [stdout]     |
[INFO] [stdout]   8 |       ($g0:expr_2021; $($g:expr_2021);*) => { $crate::prelude::disj2($g0, $crate::disj!($($g);*))}
[INFO] [stdout]     |                                               ---------------------------------------------------
[INFO] [stdout]     |                                               |
[INFO] [stdout]     |                                               this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                               `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  70 |               $crate::prelude::Stream::suspension(move || $crate::conj!($($g),*).apply(s))
[INFO] [stdout]     |                                                                                         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: this warning originates in the macro `list` which comes from the expansion of the macro `defmatch` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/macros.rs:8:45
[INFO] [stdout]     |
[INFO] [stdout]   8 |          ($g0:expr_2021; $($g:expr_2021);*) => { $crate::prelude::disj2($g0, $crate::disj!($($g);*))}
[INFO] [stdout]     |                                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                                  |
[INFO] [stdout]     |                                                  this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                                                  up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 364 | /            assert_eq!(
[INFO] [stdout] 365 | | /              run!(*, q,
[INFO] [stdout] 366 | | |/                 matche! { q,
[INFO] [stdout] 367 | | ||                     1 => ;
[INFO] [stdout] 368 | | ||                     2 => fail();
[INFO] [stdout] 369 | | ||                     3 => ;
[INFO] [stdout] 370 | | ||                 }
[INFO] [stdout]     | | ||_________________- in this macro invocation
[INFO] [stdout] 371 | | |              )
[INFO] [stdout] 372 | | |              .into_vec(),
[INFO] [stdout]     | | |                        -
[INFO] [stdout]     | | |                        |
[INFO] [stdout]     | | |________________________this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     | |                          `#1` will be dropped later as of Edition 2024
[INFO] [stdout] 373 | |                vec![1, 3],
[INFO] [stdout] 374 | |            );
[INFO] [stdout]     | |____________- now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: this warning originates in the macro `$crate::disj` which comes from the expansion of the macro `matche` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/macros.rs:8:45
[INFO] [stdout]     |
[INFO] [stdout]   8 |            ($g0:expr_2021; $($g:expr_2021);*) => { $crate::prelude::disj2($g0, $crate::disj!($($g);*))}
[INFO] [stdout]     |                                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                                    |
[INFO] [stdout]     |                                                    this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                                                    up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 379 | /              assert_eq!(
[INFO] [stdout] 380 | |   /              run!(*, q,
[INFO] [stdout] 381 | |   |/                 matche! { q,
[INFO] [stdout] 382 | |   ||                     (_) => ;
[INFO] [stdout] 383 | |   ||                     (_, _) => ;
[INFO] [stdout] 384 | |   ||                     (_, _ ; _) => ;
[INFO] [stdout] 385 | |   ||                 }
[INFO] [stdout]     | |   ||_________________- in this macro invocation
[INFO] [stdout] 386 | |   |              )
[INFO] [stdout] 387 | |   |              .into_vec(),
[INFO] [stdout]     | |   |                        -
[INFO] [stdout]     | |   |                        |
[INFO] [stdout]     | |   |________________________this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     | |                            `#1` will be dropped later as of Edition 2024
[INFO] [stdout] 388 | |    /             vec![
[INFO] [stdout] 389 | |    |                 list![Value::rv(0)],
[INFO] [stdout] 390 | |    |                 list![Value::rv(0), Value::rv(1)],
[INFO] [stdout] 391 | |    |                 list![Value::rv(0), Value::rv(1) ; Value::rv(2)],
[INFO] [stdout] 392 | |    |             ],
[INFO] [stdout]     | |    |             -
[INFO] [stdout]     | |    |_____________|
[INFO] [stdout]     | |    |_____________this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     | |                  `#2` will be dropped later as of Edition 2024
[INFO] [stdout] 393 | |    |         );
[INFO] [stdout]     | |____|_________- now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: this warning originates in the macro `$crate::disj` which comes from the expansion of the macro `matche` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/macros.rs:8:45
[INFO] [stdout]     |
[INFO] [stdout]   8 |            ($g0:expr_2021; $($g:expr_2021);*) => { $crate::prelude::disj2($g0, $crate::disj!($($g);*))}
[INFO] [stdout]     |                                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                                    |
[INFO] [stdout]     |                                                    this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                                                    up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 398 | /              assert_eq!(
[INFO] [stdout] 399 | |   /              run!(*, q,
[INFO] [stdout] 400 | |   |/                 matche! { q,
[INFO] [stdout] 401 | |   ||                     (a) => eq(a, 1);
[INFO] [stdout] 402 | |   ||                     (b, c) => eq(b, c);
[INFO] [stdout] 403 | |   ||                     (a, _ ; d) => eq(d, 2);
[INFO] [stdout] 404 | |   ||                 }
[INFO] [stdout]     | |   ||_________________- in this macro invocation
[INFO] [stdout] 405 | |   |              )
[INFO] [stdout] 406 | |   |              .into_vec(),
[INFO] [stdout]     | |   |                        -
[INFO] [stdout]     | |   |                        |
[INFO] [stdout]     | |   |________________________this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     | |                            `#1` will be dropped later as of Edition 2024
[INFO] [stdout] 407 | |    /             vec![
[INFO] [stdout] 408 | |    |                 list![1],
[INFO] [stdout] 409 | |    |                 list![Value::rv(0), Value::rv(0)],
[INFO] [stdout] 410 | |    |                 list![Value::rv(0), Value::rv(1) ; 2],
[INFO] [stdout] 411 | |    |             ],
[INFO] [stdout]     | |    |             -
[INFO] [stdout]     | |    |_____________|
[INFO] [stdout]     | |    |_____________this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     | |                  `#2` will be dropped later as of Edition 2024
[INFO] [stdout] 412 | |    |         );
[INFO] [stdout]     | |____|_________- now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: this warning originates in the macro `$crate::disj` which comes from the expansion of the macro `matche` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/goals/numbers.rs:261:24
[INFO] [stdout]     |
[INFO] [stdout] 260 | /         assert_eq!(
[INFO] [stdout] 261 | |             run!(5, q, numbero(q)).into_vec(),
[INFO] [stdout]     | |             -----------^^^^^^^^^^------------
[INFO] [stdout]     | |             |          |
[INFO] [stdout]     | |             |          this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     | |             |          up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     | |             this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     | |             `#1` will be dropped later as of Edition 2024
[INFO] [stdout] 262 | |             vec![0, 1, 2, 3, 4].into_iter().map(num).collect::<Vec<_>>()
[INFO] [stdout]     | |             ------------------------------------------------------------
[INFO] [stdout]     | |             |
[INFO] [stdout]     | |             this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     | |             `#2` will be dropped later as of Edition 2024
[INFO] [stdout] 263 | |         );
[INFO] [stdout]     | |_________- now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/macros.rs:181:31
[INFO] [stdout]     |
[INFO] [stdout] 181 |             $crate::run!(@ $n, q, {
[INFO] [stdout]     |  _________________________________^
[INFO] [stdout] 182 | |               $crate::fresh!(
[INFO] [stdout] 183 | |                   ($($x),*),
[INFO] [stdout] 184 | |                   $crate::prelude::eq(vec![$($crate::prelude::Value::var($x.clone())),*], q),
[INFO] [stdout] ...   |
[INFO] [stdout] 187 | |           })
[INFO] [stdout]     | |           ^
[INFO] [stdout]     | |           |
[INFO] [stdout]     | |___________this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |             up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/goals/numbers.rs:301:9
[INFO] [stdout]     |
[INFO] [stdout] 301 | /           assert_eq!(
[INFO] [stdout] 302 | |               run!(*, (a, b), addo(a, b, num(3))).into_vec(),
[INFO] [stdout]     | |               ----------------------------------------------
[INFO] [stdout]     | |               |
[INFO] [stdout]     | |               this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     | |               `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     | |               in this macro invocation
[INFO] [stdout] 303 | | /             vec![
[INFO] [stdout] 304 | | |                 list![num(0), num(3)],
[INFO] [stdout] 305 | | |                 list![num(3), num(0)],
[INFO] [stdout] 306 | | |                 list![num(1), num(2)],
[INFO] [stdout] 307 | | |                 list![num(2), num(1)],
[INFO] [stdout] 308 | | |             ]
[INFO] [stdout]     | | |             -
[INFO] [stdout]     | | |             |
[INFO] [stdout]     | | |_____________this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     | |               `#2` will be dropped later as of Edition 2024
[INFO] [stdout] 309 | |           );
[INFO] [stdout]     | |___________- now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: this warning originates in the macro `$crate::run` which comes from the expansion of the macro `run` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/macros.rs:181:31
[INFO] [stdout]     |
[INFO] [stdout] 181 |           $crate::run!(@ $n, q, {
[INFO] [stdout]     |  _______________________________^
[INFO] [stdout] 182 | |             $crate::fresh!(
[INFO] [stdout] 183 | |                 ($($x),*),
[INFO] [stdout] 184 | |                 $crate::prelude::eq(vec![$($crate::prelude::Value::var($x.clone())),*], q),
[INFO] [stdout] ...   |
[INFO] [stdout] 187 | |         })
[INFO] [stdout]     | |         ^
[INFO] [stdout]     | |         |
[INFO] [stdout]     | |_________this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |           up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/goals/numbers.rs:363:25
[INFO] [stdout]     |
[INFO] [stdout] 363 |           for solution in run!((a, b, c), mulo(a, b, c)).take(20) {
[INFO] [stdout]     |               --------    ---------------------------------------
[INFO] [stdout]     |               |           |
[INFO] [stdout]     |               |           `iter` calls a custom destructor
[INFO] [stdout]     |               |           `iter` will be dropped later as of Edition 2024
[INFO] [stdout]     |               |           this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |               |           `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |               |           in this macro invocation
[INFO] [stdout]     |               `solution` calls a custom destructor
[INFO] [stdout]     |               `solution` will be dropped later as of Edition 2024
[INFO] [stdout] 364 |               println!("{:?}", solution);
[INFO] [stdout] 365 |           }
[INFO] [stdout]     |           - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `iter` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `solution` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: this warning originates in the macro `$crate::run` which comes from the expansion of the macro `run` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/macros.rs:181:31
[INFO] [stdout]     |
[INFO] [stdout] 181 |             $crate::run!(@ $n, q, {
[INFO] [stdout]     |  _________________________________^
[INFO] [stdout] 182 | |               $crate::fresh!(
[INFO] [stdout] 183 | |                   ($($x),*),
[INFO] [stdout] 184 | |                   $crate::prelude::eq(vec![$($crate::prelude::Value::var($x.clone())),*], q),
[INFO] [stdout] ...   |
[INFO] [stdout] 187 | |           })
[INFO] [stdout]     | |           ^
[INFO] [stdout]     | |           |
[INFO] [stdout]     | |___________this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |             up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/goals/numbers.rs:381:9
[INFO] [stdout]     |
[INFO] [stdout] 381 | /           assert_eq!(
[INFO] [stdout] 382 | |               run!(*, (a, b), mulo(a, b, num(6))).into_vec(),
[INFO] [stdout]     | |               ----------------------------------------------
[INFO] [stdout]     | |               |
[INFO] [stdout]     | |               this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     | |               `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     | |               in this macro invocation
[INFO] [stdout] 383 | | /             vec![
[INFO] [stdout] 384 | | |                 // Actually, the order does not matter but this
[INFO] [stdout] 385 | | |                 // is what we get with the current implementation.
[INFO] [stdout] 386 | | |                 list![num(1), num(6)],
[INFO] [stdout] ...   | |
[INFO] [stdout] 389 | | |                 list![num(3), num(2)],
[INFO] [stdout] 390 | | |             ]
[INFO] [stdout]     | | |             -
[INFO] [stdout]     | | |             |
[INFO] [stdout]     | | |_____________this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     | |               `#2` will be dropped later as of Edition 2024
[INFO] [stdout] 391 | |           );
[INFO] [stdout]     | |___________- now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: this warning originates in the macro `$crate::run` which comes from the expansion of the macro `run` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/macros.rs:14:13
[INFO] [stdout]     |
[INFO] [stdout]  14 |       () => { $crate::prelude::succeed() };
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |               |
[INFO] [stdout]     |               this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |               up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 202 |       (@ $n:expr_2021, $q:ident, $($g:expr_2021),* $(,)?) => {{
[INFO] [stdout]     |  _____________________________________________________________-
[INFO] [stdout] 203 | |         let $q = $crate::prelude::Var::new(stringify!($q));
[INFO] [stdout] 204 | |         let var = $crate::prelude::Value::var($q.clone());
[INFO] [stdout] 205 | |         $crate::conj!($($g),*).run($n).map(move |s| s.reify(&var))
[INFO] [stdout] 206 | |     }};
[INFO] [stdout]     | |     -
[INFO] [stdout]     | |     |
[INFO] [stdout]     | |_____this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |       `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/lib.rs:205:33
[INFO] [stdout]     |
[INFO] [stdout] 205 |           assert_eq!(run!(1, x,), Stream::singleton(Value::from(ReifiedVar(0))));
[INFO] [stdout]     |           ----------------------------------------------------------------------
[INFO] [stdout]     |           |          |            |
[INFO] [stdout]     |           |          |            this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |           |          |            `#2` will be dropped later as of Edition 2024
[INFO] [stdout]     |           |          in this macro invocation
[INFO] [stdout]     |           now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: this warning originates in the macro `$crate::conj` which comes from the expansion of the macro `run` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/lib.rs:206:31
[INFO] [stdout]     |
[INFO] [stdout] 206 |           assert_eq!(run!(1, x, eq(x, 42)), Stream::singleton(Value::new(42)));
[INFO] [stdout]     |           ----------------------^^^^^^^^^-------------------------------------
[INFO] [stdout]     |           |                     |           |
[INFO] [stdout]     |           |                     |           this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |           |                     |           `#2` will be dropped later as of Edition 2024
[INFO] [stdout]     |           |                     this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |           |                     up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |           now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/macros.rs:202:61
[INFO] [stdout]     |
[INFO] [stdout] 202 |       (@ $n:expr_2021, $q:ident, $($g:expr_2021),* $(,)?) => {{
[INFO] [stdout]     |  _____________________________________________________________-
[INFO] [stdout] 203 | |         let $q = $crate::prelude::Var::new(stringify!($q));
[INFO] [stdout] 204 | |         let var = $crate::prelude::Value::var($q.clone());
[INFO] [stdout] 205 | |         $crate::conj!($($g),*).run($n).map(move |s| s.reify(&var))
[INFO] [stdout] 206 | |     }};
[INFO] [stdout]     | |     -
[INFO] [stdout]     | |     |
[INFO] [stdout]     | |_____this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |       `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/macros.rs:181:31
[INFO] [stdout]     |
[INFO] [stdout] 181 |             $crate::run!(@ $n, q, {
[INFO] [stdout]     |  _________________________________^
[INFO] [stdout] 182 | |               $crate::fresh!(
[INFO] [stdout] 183 | |                   ($($x),*),
[INFO] [stdout] 184 | |                   $crate::prelude::eq(vec![$($crate::prelude::Value::var($x.clone())),*], q),
[INFO] [stdout] ...   |
[INFO] [stdout] 187 | |           })
[INFO] [stdout]     | |           ^
[INFO] [stdout]     | |           |
[INFO] [stdout]     | |___________this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |             up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 202 |         (@ $n:expr_2021, $q:ident, $($g:expr_2021),* $(,)?) => {{
[INFO] [stdout]     |  _______________________________________________________________-
[INFO] [stdout]     | |_______________________________________________________________|
[INFO] [stdout] 203 | |           let $q = $crate::prelude::Var::new(stringify!($q));
[INFO] [stdout] 204 | |           let var = $crate::prelude::Value::var($q.clone());
[INFO] [stdout] 205 | |           $crate::conj!($($g),*).run($n).map(move |s| s.reify(&var))
[INFO] [stdout] 206 | |       }};
[INFO] [stdout]     | |       -
[INFO] [stdout]     | |_______|
[INFO] [stdout]     | |_______this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |         `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/lib.rs:207:9
[INFO] [stdout]     |
[INFO] [stdout] 207 | /           assert_eq!(
[INFO] [stdout] 208 | |               run!(1, (x, y),),
[INFO] [stdout]     | |               ---------------- in this macro invocation
[INFO] [stdout] 209 | | /             Stream::singleton(Value::new(vec![
[INFO] [stdout] 210 | | |                 Value::from(ReifiedVar(0)),
[INFO] [stdout] 211 | | |                 Value::from(ReifiedVar(1))
[INFO] [stdout] 212 | | |             ]))
[INFO] [stdout]     | | |               -
[INFO] [stdout]     | | |               |
[INFO] [stdout]     | | |_______________this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     | |                 `#2` will be dropped later as of Edition 2024
[INFO] [stdout] 213 | |           );
[INFO] [stdout]     | |___________- now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: this warning originates in the macro `$crate::run` which comes from the expansion of the macro `run` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/macros.rs:181:31
[INFO] [stdout]     |
[INFO] [stdout] 181 |           $crate::run!(@ $n, q, {
[INFO] [stdout]     |  _______________________________^
[INFO] [stdout] 182 | |             $crate::fresh!(
[INFO] [stdout] 183 | |                 ($($x),*),
[INFO] [stdout] 184 | |                 $crate::prelude::eq(vec![$($crate::prelude::Value::var($x.clone())),*], q),
[INFO] [stdout] ...   |
[INFO] [stdout] 187 | |         })
[INFO] [stdout]     | |         ^
[INFO] [stdout]     | |         |
[INFO] [stdout]     | |_________this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |           up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 202 |       (@ $n:expr_2021, $q:ident, $($g:expr_2021),* $(,)?) => {{
[INFO] [stdout]     |  _____________________________________________________________-
[INFO] [stdout]     | |_____________________________________________________________|
[INFO] [stdout] 203 | |         let $q = $crate::prelude::Var::new(stringify!($q));
[INFO] [stdout] 204 | |         let var = $crate::prelude::Value::var($q.clone());
[INFO] [stdout] 205 | |         $crate::conj!($($g),*).run($n).map(move |s| s.reify(&var))
[INFO] [stdout] 206 | |     }};
[INFO] [stdout]     | |     -
[INFO] [stdout]     | |_____|
[INFO] [stdout]     | |_____this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |       `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/lib.rs:214:9
[INFO] [stdout]     |
[INFO] [stdout] 214 | /         assert_eq!(
[INFO] [stdout] 215 | |             run!(1, (x, y), eq(x, 42)),
[INFO] [stdout]     | |             -------------------------- in this macro invocation
[INFO] [stdout] 216 | |             Stream::singleton(Value::new(vec![Value::new(42), Value::from(ReifiedVar(0))]))
[INFO] [stdout]     | |             -------------------------------------------------------------------------------
[INFO] [stdout]     | |             |
[INFO] [stdout]     | |             this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     | |             `#2` will be dropped later as of Edition 2024
[INFO] [stdout] 217 | |         );
[INFO] [stdout]     | |_________- now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: this warning originates in the macro `$crate::run` which comes from the expansion of the macro `run` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/lib.rs:226:24
[INFO] [stdout]     |
[INFO] [stdout] 225 | /         assert_eq!(
[INFO] [stdout] 226 | |             run!(*, x, conso(1, 2, x)),
[INFO] [stdout]     | |                        ^^^^^^^^^^^^^^
[INFO] [stdout]     | |                        |
[INFO] [stdout]     | |                        this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     | |                        up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 227 | |             Stream::singleton(Value::new(vec![Value::new(1), Value::new(2)]))
[INFO] [stdout]     | |             -----------------------------------------------------------------
[INFO] [stdout]     | |             |
[INFO] [stdout]     | |             this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     | |             `#2` will be dropped later as of Edition 2024
[INFO] [stdout] 228 | |         );
[INFO] [stdout]     | |_________- now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/macros.rs:190:50
[INFO] [stdout]     |
[INFO] [stdout] 190 |       (@ *, $q:ident, $($g:expr_2021),* $(,)?) => {{
[INFO] [stdout]     |  __________________________________________________-
[INFO] [stdout] 191 | |         let $q = $crate::prelude::Var::new(stringify!($q));
[INFO] [stdout] 192 | |         let var = $crate::prelude::Value::var($q.clone());
[INFO] [stdout] 193 | |         $crate::conj!($($g),*).run_inf().map(move |s| s.reify(&var))
[INFO] [stdout] 194 | |     }};
[INFO] [stdout]     | |     -
[INFO] [stdout]     | |     |
[INFO] [stdout]     | |_____this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |       `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/lib.rs:230:24
[INFO] [stdout]     |
[INFO] [stdout] 229 | /         assert_eq!(
[INFO] [stdout] 230 | |             run!(*, x, conso(1, x, vec![Value::new(1), Value::new(2)])),
[INFO] [stdout]     | |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     | |                        |
[INFO] [stdout]     | |                        this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     | |                        up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 231 | |             Stream::singleton(Value::new(2))
[INFO] [stdout]     | |             --------------------------------
[INFO] [stdout]     | |             |
[INFO] [stdout]     | |             this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     | |             `#2` will be dropped later as of Edition 2024
[INFO] [stdout] 232 | |         );
[INFO] [stdout]     | |_________- now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/macros.rs:190:50
[INFO] [stdout]     |
[INFO] [stdout] 190 |       (@ *, $q:ident, $($g:expr_2021),* $(,)?) => {{
[INFO] [stdout]     |  __________________________________________________-
[INFO] [stdout] 191 | |         let $q = $crate::prelude::Var::new(stringify!($q));
[INFO] [stdout] 192 | |         let var = $crate::prelude::Value::var($q.clone());
[INFO] [stdout] 193 | |         $crate::conj!($($g),*).run_inf().map(move |s| s.reify(&var))
[INFO] [stdout] 194 | |     }};
[INFO] [stdout]     | |     -
[INFO] [stdout]     | |     |
[INFO] [stdout]     | |_____this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |       `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/lib.rs:234:24
[INFO] [stdout]     |
[INFO] [stdout] 233 | /         assert_eq!(
[INFO] [stdout] 234 | |             run!(*, x, conso(x, 2, vec![Value::new(1), Value::new(2)])),
[INFO] [stdout]     | |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     | |                        |
[INFO] [stdout]     | |                        this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     | |                        up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 235 | |             Stream::singleton(Value::new(1))
[INFO] [stdout]     | |             --------------------------------
[INFO] [stdout]     | |             |
[INFO] [stdout]     | |             this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     | |             `#2` will be dropped later as of Edition 2024
[INFO] [stdout] 236 | |         );
[INFO] [stdout]     | |_________- now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/macros.rs:190:50
[INFO] [stdout]     |
[INFO] [stdout] 190 |       (@ *, $q:ident, $($g:expr_2021),* $(,)?) => {{
[INFO] [stdout]     |  __________________________________________________-
[INFO] [stdout] 191 | |         let $q = $crate::prelude::Var::new(stringify!($q));
[INFO] [stdout] 192 | |         let var = $crate::prelude::Value::var($q.clone());
[INFO] [stdout] 193 | |         $crate::conj!($($g),*).run_inf().map(move |s| s.reify(&var))
[INFO] [stdout] 194 | |     }};
[INFO] [stdout]     | |     -
[INFO] [stdout]     | |     |
[INFO] [stdout]     | |_____this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |       `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/lib.rs:238:24
[INFO] [stdout]     |
[INFO] [stdout] 237 | /         assert_eq!(
[INFO] [stdout] 238 | |             run!(*, x, conso(x.clone(), x, vec![Value::new(1), Value::new(2)])),
[INFO] [stdout]     | |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     | |                        |
[INFO] [stdout]     | |                        this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     | |                        up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 239 | |             Stream::empty()
[INFO] [stdout]     | |             ---------------
[INFO] [stdout]     | |             |
[INFO] [stdout]     | |             this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     | |             `#2` will be dropped later as of Edition 2024
[INFO] [stdout] 240 | |         );
[INFO] [stdout]     | |_________- now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/macros.rs:190:50
[INFO] [stdout]     |
[INFO] [stdout] 190 |       (@ *, $q:ident, $($g:expr_2021),* $(,)?) => {{
[INFO] [stdout]     |  __________________________________________________-
[INFO] [stdout] 191 | |         let $q = $crate::prelude::Var::new(stringify!($q));
[INFO] [stdout] 192 | |         let var = $crate::prelude::Value::var($q.clone());
[INFO] [stdout] 193 | |         $crate::conj!($($g),*).run_inf().map(move |s| s.reify(&var))
[INFO] [stdout] 194 | |     }};
[INFO] [stdout]     | |     -
[INFO] [stdout]     | |     |
[INFO] [stdout]     | |_____this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |       `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/lib.rs:242:24
[INFO] [stdout]     |
[INFO] [stdout] 241 | /         assert_eq!(
[INFO] [stdout] 242 | |             run!(*, x, conso(x.clone(), x, vec![Value::new(3), Value::new(3)])),
[INFO] [stdout]     | |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     | |                        |
[INFO] [stdout]     | |                        this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     | |                        up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 243 | |             Stream::singleton(Value::new(3))
[INFO] [stdout]     | |             --------------------------------
[INFO] [stdout]     | |             |
[INFO] [stdout]     | |             this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     | |             `#2` will be dropped later as of Edition 2024
[INFO] [stdout] 244 | |         );
[INFO] [stdout]     | |_________- now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/macros.rs:190:50
[INFO] [stdout]     |
[INFO] [stdout] 190 |       (@ *, $q:ident, $($g:expr_2021),* $(,)?) => {{
[INFO] [stdout]     |  __________________________________________________-
[INFO] [stdout] 191 | |         let $q = $crate::prelude::Var::new(stringify!($q));
[INFO] [stdout] 192 | |         let var = $crate::prelude::Value::var($q.clone());
[INFO] [stdout] 193 | |         $crate::conj!($($g),*).run_inf().map(move |s| s.reify(&var))
[INFO] [stdout] 194 | |     }};
[INFO] [stdout]     | |     -
[INFO] [stdout]     | |     |
[INFO] [stdout]     | |_____this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |       `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/lib.rs:247:24
[INFO] [stdout]     |
[INFO] [stdout] 246 | /         assert_eq!(
[INFO] [stdout] 247 | |             run!(5, q, eq(q, "onion")),
[INFO] [stdout]     | |                        ^^^^^^^^^^^^^^
[INFO] [stdout]     | |                        |
[INFO] [stdout]     | |                        this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     | |                        up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 248 | |             Stream::singleton(Value::new("onion"))
[INFO] [stdout]     | |             --------------------------------------
[INFO] [stdout]     | |             |
[INFO] [stdout]     | |             this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     | |             `#2` will be dropped later as of Edition 2024
[INFO] [stdout] 249 | |         );
[INFO] [stdout]     | |_________- now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/macros.rs:202:61
[INFO] [stdout]     |
[INFO] [stdout] 202 |       (@ $n:expr_2021, $q:ident, $($g:expr_2021),* $(,)?) => {{
[INFO] [stdout]     |  _____________________________________________________________-
[INFO] [stdout] 203 | |         let $q = $crate::prelude::Var::new(stringify!($q));
[INFO] [stdout] 204 | |         let var = $crate::prelude::Value::var($q.clone());
[INFO] [stdout] 205 | |         $crate::conj!($($g),*).run($n).map(move |s| s.reify(&var))
[INFO] [stdout] 206 | |     }};
[INFO] [stdout]     | |     -
[INFO] [stdout]     | |     |
[INFO] [stdout]     | |_____this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |       `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/macros.rs:16:45
[INFO] [stdout]     |
[INFO] [stdout]  16 |       ($g0:expr_2021, $($g:expr_2021),*) => { $crate::prelude::conj2($g0, $crate::conj!($($g),*))}
[INFO] [stdout]     |                                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                               |
[INFO] [stdout]     |                                               this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                                               up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 202 |       (@ $n:expr_2021, $q:ident, $($g:expr_2021),* $(,)?) => {{
[INFO] [stdout]     |  _____________________________________________________________-
[INFO] [stdout] 203 | |         let $q = $crate::prelude::Var::new(stringify!($q));
[INFO] [stdout] 204 | |         let var = $crate::prelude::Value::var($q.clone());
[INFO] [stdout] 205 | |         $crate::conj!($($g),*).run($n).map(move |s| s.reify(&var))
[INFO] [stdout] 206 | |     }};
[INFO] [stdout]     | |     -
[INFO] [stdout]     | |     |
[INFO] [stdout]     | |_____this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |       `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/lib.rs:251:9
[INFO] [stdout]     |
[INFO] [stdout] 251 | /         assert_eq!(
[INFO] [stdout] 252 | |             run!(5, q, eq(q, "onion"), alwayso(),),
[INFO] [stdout]     | |             -------------------------------------- in this macro invocation
[INFO] [stdout] 253 | |             Stream::from_iter(std::iter::repeat(Value::new("onion")).take(5))
[INFO] [stdout]     | |             -----------------------------------------------------------------
[INFO] [stdout]     | |             |
[INFO] [stdout]     | |             this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     | |             `#2` will be dropped later as of Edition 2024
[INFO] [stdout] 254 | |         );
[INFO] [stdout]     | |_________- now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: this warning originates in the macro `$crate::conj` which comes from the expansion of the macro `run` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Migrating examples/conds.rs from 2021 edition to 2024
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]   --> examples/conds.rs:32:20
[INFO] [stdout]    |
[INFO] [stdout] 30 | /     println!(
[INFO] [stdout] 31 | |         "Which list contains 3 using conde? {:?}",
[INFO] [stdout] 32 | |         run!(*, q, whiche(3, list![1, 2, 3], list![3, 4, 5], q))
[INFO] [stdout]    | |         -----------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]    | |         |          |
[INFO] [stdout]    | |         |          this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]    | |         |          up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]    | |         this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]    | |         `#1` will be dropped later as of Edition 2024
[INFO] [stdout] 33 | |     );
[INFO] [stdout]    | |_____- now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]    = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]    = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Migrating examples/database.rs from 2021 edition to 2024
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]   --> examples/conds.rs:36:20
[INFO] [stdout]    |
[INFO] [stdout] 34 | /     println!(
[INFO] [stdout] 35 | |         "Which list contains 3 using conda? {:?}",
[INFO] [stdout] 36 | |         run!(*, q, whicha(3, list![1, 2, 3], list![3, 4, 5], q))
[INFO] [stdout]    | |         -----------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
[INFO] [stdout]    | |         |          |
[INFO] [stdout]    | |         |          this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]    | |         |          up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]    | |         this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]    | |         `#1` will be dropped later as of Edition 2024
[INFO] [stdout] 37 | |     );
[INFO] [stdout]    | |_____- now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]    = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `impl Clone + Goal<Substitution<'static>>` will capture more lifetimes than possibly intended in edition 2024
[INFO] [stdout]   --> examples/database.rs:7:1
[INFO] [stdout]    |
[INFO] [stdout]  7 | / db_rel! {
[INFO] [stdout]  8 | |     food(f);
[INFO] [stdout]  9 | |     drink(d);
[INFO] [stdout] 10 | |     goes_well_with(f, d);
[INFO] [stdout] 11 | |     is_vegetarian(f, k);
[INFO] [stdout] 12 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds
[INFO] [stdout]   --> examples/database.rs:7:1
[INFO] [stdout]    |
[INFO] [stdout]  7 | / db_rel! {
[INFO] [stdout]  8 | |     food(f);
[INFO] [stdout]  9 | |     drink(d);
[INFO] [stdout] 10 | |     goes_well_with(f, d);
[INFO] [stdout] 11 | |     is_vegetarian(f, k);
[INFO] [stdout] 12 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024
[INFO] [stdout] note: you could use a `use<...>` bound to explicitly specify captures, but argument-position `impl Trait`s are not nameable
[INFO] [stdout]   --> examples/database.rs:7:1
[INFO] [stdout]    |
[INFO] [stdout]  7 | / db_rel! {
[INFO] [stdout]  8 | |     food(f);
[INFO] [stdout]  9 | |     drink(d);
[INFO] [stdout] 10 | |     goes_well_with(f, d);
[INFO] [stdout] 11 | |     is_vegetarian(f, k);
[INFO] [stdout] 12 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/rpit-lifetime-capture.html>
[INFO] [stdout]    = note: `--force-warn impl-trait-overcaptures` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout]    = note: this warning originates in the macro `db_rel` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]   --> src/database.rs:45:20
[INFO] [stdout]    |
[INFO] [stdout] 45 -             fn $rel(db: &Arc<$crate::database::Database>, $($args: impl Into<$crate::prelude::Value>),*) -> impl Clone + $crate::prelude::Goal<$crate::prelude::Substitution<'static>> {
[INFO] [stdout] 45 +             fn $rel<T: Into<::mini_kanren::prelude::Value>>(db: &Arc<$crate::database::Database>, $($args: T),*) -> impl Clone + $crate::prelude::Goal<$crate::prelude::Substitution<'static>> + use<T> {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 3.84s
[INFO] [stdout] warning: `impl Clone + Goal<Substitution<'static>>` will capture more lifetimes than possibly intended in edition 2024
[INFO] [stdout]   --> examples/database.rs:7:1
[INFO] [stdout]    |
[INFO] [stdout]  7 | / db_rel! {
[INFO] [stdout]  8 | |     food(f);
[INFO] [stdout]  9 | |     drink(d);
[INFO] [stdout] 10 | |     goes_well_with(f, d);
[INFO] [stdout] 11 | |     is_vegetarian(f, k);
[INFO] [stdout] 12 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds
[INFO] [stdout]   --> examples/database.rs:7:1
[INFO] [stdout]    |
[INFO] [stdout]  7 | / db_rel! {
[INFO] [stdout]  8 | |     food(f);
[INFO] [stdout]  9 | |     drink(d);
[INFO] [stdout] 10 | |     goes_well_with(f, d);
[INFO] [stdout] 11 | |     is_vegetarian(f, k);
[INFO] [stdout] 12 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024
[INFO] [stdout] note: you could use a `use<...>` bound to explicitly specify captures, but argument-position `impl Trait`s are not nameable
[INFO] [stdout]   --> examples/database.rs:7:1
[INFO] [stdout]    |
[INFO] [stdout]  7 | / db_rel! {
[INFO] [stdout]  8 | |     food(f);
[INFO] [stdout]  9 | |     drink(d);
[INFO] [stdout] 10 | |     goes_well_with(f, d);
[INFO] [stdout] 11 | |     is_vegetarian(f, k);
[INFO] [stdout] 12 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/rpit-lifetime-capture.html>
[INFO] [stdout]    = note: this warning originates in the macro `db_rel` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]   --> src/database.rs:45:20
[INFO] [stdout]    |
[INFO] [stdout] 45 -             fn $rel(db: &Arc<$crate::database::Database>, $($args: impl Into<$crate::prelude::Value>),*) -> impl Clone + $crate::prelude::Goal<$crate::prelude::Substitution<'static>> {
[INFO] [stdout] 45 +             fn $rel<T: Into<::mini_kanren::prelude::Value>>(db: &Arc<$crate::database::Database>, $($args: T),*) -> impl Clone + $crate::prelude::Goal<$crate::prelude::Substitution<'static>> + use<T> {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `impl Clone + Goal<Substitution<'static>>` will capture more lifetimes than possibly intended in edition 2024
[INFO] [stdout]   --> examples/database.rs:7:1
[INFO] [stdout]    |
[INFO] [stdout]  7 | / db_rel! {
[INFO] [stdout]  8 | |     food(f);
[INFO] [stdout]  9 | |     drink(d);
[INFO] [stdout] 10 | |     goes_well_with(f, d);
[INFO] [stdout] 11 | |     is_vegetarian(f, k);
[INFO] [stdout] 12 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds
[INFO] [stdout]   --> examples/database.rs:7:1
[INFO] [stdout]    |
[INFO] [stdout]  7 | / db_rel! {
[INFO] [stdout]  8 | |     food(f);
[INFO] [stdout]  9 | |     drink(d);
[INFO] [stdout] 10 | |     goes_well_with(f, d);
[INFO] [stdout] 11 | |     is_vegetarian(f, k);
[INFO] [stdout] 12 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024
[INFO] [stdout] note: you could use a `use<...>` bound to explicitly specify captures, but argument-position `impl Trait`s are not nameable
[INFO] [stdout]   --> examples/database.rs:7:1
[INFO] [stdout]    |
[INFO] [stdout]  7 | / db_rel! {
[INFO] [stdout]  8 | |     food(f);
[INFO] [stdout]  9 | |     drink(d);
[INFO] [stdout] 10 | |     goes_well_with(f, d);
[INFO] [stdout] 11 | |     is_vegetarian(f, k);
[INFO] [stdout] 12 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/rpit-lifetime-capture.html>
[INFO] [stdout]    = note: this warning originates in the macro `db_rel` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]   --> src/database.rs:45:20
[INFO] [stdout]    |
[INFO] [stdout] 45 -             fn $rel(db: &Arc<$crate::database::Database>, $($args: impl Into<$crate::prelude::Value>),*) -> impl Clone + $crate::prelude::Goal<$crate::prelude::Substitution<'static>> {
[INFO] [stdout] 45 +             fn $rel<T: Into<::mini_kanren::prelude::Value>, U: Into<::mini_kanren::prelude::Value>>(db: &Arc<$crate::database::Database>, $($args: TU),*) -> impl Clone + $crate::prelude::Goal<$crate::prelude::Substitution<'static>> + use<T, U> {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `impl Clone + Goal<Substitution<'static>>` will capture more lifetimes than possibly intended in edition 2024
[INFO] [stdout]   --> examples/database.rs:7:1
[INFO] [stdout]    |
[INFO] [stdout]  7 | / db_rel! {
[INFO] [stdout]  8 | |     food(f);
[INFO] [stdout]  9 | |     drink(d);
[INFO] [stdout] 10 | |     goes_well_with(f, d);
[INFO] [stdout] 11 | |     is_vegetarian(f, k);
[INFO] [stdout] 12 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds
[INFO] [stdout]   --> examples/database.rs:7:1
[INFO] [stdout]    |
[INFO] [stdout]  7 | / db_rel! {
[INFO] [stdout]  8 | |     food(f);
[INFO] [stdout]  9 | |     drink(d);
[INFO] [stdout] 10 | |     goes_well_with(f, d);
[INFO] [stdout] 11 | |     is_vegetarian(f, k);
[INFO] [stdout] 12 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024
[INFO] [stdout] note: you could use a `use<...>` bound to explicitly specify captures, but argument-position `impl Trait`s are not nameable
[INFO] [stdout]   --> examples/database.rs:7:1
[INFO] [stdout]    |
[INFO] [stdout]  7 | / db_rel! {
[INFO] [stdout]  8 | |     food(f);
[INFO] [stdout]  9 | |     drink(d);
[INFO] [stdout] 10 | |     goes_well_with(f, d);
[INFO] [stdout] 11 | |     is_vegetarian(f, k);
[INFO] [stdout] 12 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/rpit-lifetime-capture.html>
[INFO] [stdout]    = note: this warning originates in the macro `db_rel` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]   --> src/database.rs:45:20
[INFO] [stdout]    |
[INFO] [stdout] 45 -             fn $rel(db: &Arc<$crate::database::Database>, $($args: impl Into<$crate::prelude::Value>),*) -> impl Clone + $crate::prelude::Goal<$crate::prelude::Substitution<'static>> {
[INFO] [stdout] 45 +             fn $rel<T: Into<::mini_kanren::prelude::Value>, U: Into<::mini_kanren::prelude::Value>>(db: &Arc<$crate::database::Database>, $($args: TU),*) -> impl Clone + $crate::prelude::Goal<$crate::prelude::Substitution<'static>> + use<T, U> {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] crater-edition-check: mini-kanren v0.4.0 (/opt/rustwide/workdir) updating edition from 2021 to 2024
[INFO] [stderr]     Checking mini-kanren v0.4.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `conde`, `defrel`, and `fresh`
[INFO] [stdout]  --> src/goals/list.rs:4:13
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::{conde, defrel, fresh};
[INFO] [stdout]   |             ^^^^^  ^^^^^^  ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `defrel`, `disj`, `fresh`, and `run`
[INFO] [stdout]   --> src/lib.rs:23:17
[INFO] [stdout]    |
[INFO] [stdout] 23 |     use crate::{defrel, disj, fresh, run, substitution};
[INFO] [stdout]    |                 ^^^^^^  ^^^^  ^^^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `conde`, `defrel`, and `fresh`
[INFO] [stdout]  --> src/goals/list.rs:4:13
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::{conde, defrel, fresh};
[INFO] [stdout]   |             ^^^^^  ^^^^^^  ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0597]: `db` does not live long enough
[INFO] [stdout]   --> examples/database.rs:66:24
[INFO] [stdout]    |
[INFO] [stdout] 52 |       let db = Arc::new(db);
[INFO] [stdout]    |           -- binding `db` declared here
[INFO] [stdout] ...
[INFO] [stdout] 63 |       let wine_and_veggie: Vec<_> = run!(
[INFO] [stdout]    |  ___________________________________-
[INFO] [stdout] 64 | |         q,
[INFO] [stdout] 65 | |         is_vegetarian(&db, q, true),
[INFO] [stdout] 66 | |         goes_well_with(&db, q, "White wine"),
[INFO] [stdout]    | |                        ^^^ borrowed value does not live long enough
[INFO] [stdout] 67 | |     )
[INFO] [stdout]    | |_____- argument requires that `db` is borrowed for `'static`
[INFO] [stdout] ...
[INFO] [stdout] 84 |   }
[INFO] [stdout]    |   - `db` dropped here while still borrowed
[INFO] [stdout]    |
[INFO] [stdout] note: requirement that the value outlives `'static` introduced here
[INFO] [stdout]   --> src/goals/combinators.rs:17:48
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub fn conj2(g1: impl Goal<StatSubs>, g2: impl 'static + Goal<StatSubs>) -> impl Goal<StatSubs> {
[INFO] [stdout]    |                                                ^^^^^^^
[INFO] [stdout] note: this call may capture more lifetimes than intended, because Rust 2024 has adjusted the `impl Trait` lifetime capture rules
[INFO] [stdout]   --> examples/database.rs:66:9
[INFO] [stdout]    |
[INFO] [stdout] 66 |         goes_well_with(&db, q, "White wine"),
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: you could use a `use<...>` bound to explicitly specify captures, but argument-position `impl Trait`s are not nameable
[INFO] [stdout]   --> examples/database.rs:7:1
[INFO] [stdout]    |
[INFO] [stdout]  7 | / db_rel! {
[INFO] [stdout]  8 | |     food(f);
[INFO] [stdout]  9 | |     drink(d);
[INFO] [stdout] 10 | |     goes_well_with(f, d);
[INFO] [stdout] 11 | |     is_vegetarian(f, k);
[INFO] [stdout] 12 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    = note: this error originates in the macro `db_rel` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]   --> src/database.rs:45:20
[INFO] [stdout]    |
[INFO] [stdout] 45 -             fn $rel(db: &Arc<$crate::database::Database>, $($args: impl Into<$crate::prelude::Value>),*) -> impl Clone + $crate::prelude::Goal<$crate::prelude::Substitution<'static>> {
[INFO] [stdout] 45 +             fn $rel<T: Into<::mini_kanren::prelude::Value>, U: Into<::mini_kanren::prelude::Value>>(db: &Arc<$crate::database::Database>, $($args: TU),*) -> impl Clone + $crate::prelude::Goal<$crate::prelude::Substitution<'static>> + use<T, U> {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0597`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `mini-kanren` (example "database") due to 1 previous error
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] running `Command { std: "docker" "inspect" "888590414a997ebf29468c368b7a1733527c6d53e36c79acc3f7bdc768187574", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "888590414a997ebf29468c368b7a1733527c6d53e36c79acc3f7bdc768187574", kill_on_drop: false }`
[INFO] [stdout] 888590414a997ebf29468c368b7a1733527c6d53e36c79acc3f7bdc768187574
